package day0401;

import java.util.*;
import java.util.stream.Collectors;


public class JieMi24 {
    /**
     * 24.解密犯罪时间 | 时间限制：1秒 | 内存限制：262144K | 语言限制：不限
     * 警察在侦破一个案件时，得到了线人给出的可能犯罪时间，形如 “HH:MM” 表示的时刻。
     * 根据警察和线人的约定，为了隐蔽，该时间是修改过的，解密规则为：利用当前出现过的数字，构造下一个距离当前时间最近的时刻，
     * 则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。"
     * "输入描述:
     * 形如HH:SS的字符串，表示原始输入
     * 输出描述:
     * 形如HH:SS的字符串，表示推理出来的犯罪时间
     * 示例1
     * 输入
     * 18:52
     * 输出
     * 18:55
     * 说明
     * 利用数字1, 8, 5, 2构造出来的最近时刻是18:55，是3分钟之后。结果不是18:51因为这个时刻是18小时52分钟之后。
     * 示例2
     * 输入
     * 23:59
     * 输出
     * 22:22
     * 说明
     * 利用数字2, 3, 5, 9构造出来的最近时刻是22:22。 答案一定是第二天的某一时刻，所以选择可构造的最小时刻为犯罪时间。
     * 备注:
     * <p>
     * 可以保证线人给定的字符串一定是合法的。例如，“01:35” 和 “11:08” 是合法的，“1:35” 和 “11:8” 是不合法的。
     * 最近的时刻有可能在第二天
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String[] s = sc.nextLine().split(":");
            List<Integer> list = new ArrayList<>();
            list.add(Integer.parseInt(String.valueOf(s[0].charAt(0))));
            list.add(Integer.parseInt(String.valueOf(s[0].charAt(1))));
            list.add(Integer.parseInt(String.valueOf(s[1].charAt(0))));
            list.add(Integer.parseInt(String.valueOf(s[1].charAt(1))));
            List<Integer> nums = list.stream().distinct().sorted().collect(Collectors.toList());
            int min = Integer.MAX_VALUE;

            for (int i = 0; i < nums.size(); i++) {
                for (int j = 0; j < nums.size(); j++) {
                    for (int k = 0; k < nums.size(); k++) {
                        for (int l = 0; l < nums.size(); l++) {
                            int temp = nums.get(i) * 1000 + nums.get(j) * 100 + nums.get(k) * 10 + nums.get(l);
                            if (temp > Integer.parseInt(s[0] + "" + s[1]) && temp < 2359) {
                                System.out.println(String.valueOf(temp).substring(0, 2) + ":" + String.valueOf(temp).substring(2, 4));
                                return;
                            }
                            min = Math.min(min, temp);
                        }
                    }
                }
            }
            System.out.println(String.valueOf(min).substring(0, 2) + ":" + String.valueOf(min).substring(2, 4));

        }

    }
}
